package com.siashan.toolkit.sms.core.entity;

import lombok.Data;

import java.util.Map;

/**
 * 短信参数
 *
 * @author siashan
 * @since v1.0.1
 */
@Data
public class SmsVerifyModel {

    /**
     * 模板ID
     */
    private String templateId;

    /**
     * 参数列表
     */
    private Map<String, String> params;


    /**
     * 短信验证码
     */
    private String smsCode;


    /**
     * 短信签名
     */
    private String SignName;

    /**
     * 短信模板
     */
    private String template;

    /**
     * 短信业务代码
     */
    private String bizCode;


    /**
     * 验证码过期时间
     */
    private Long expireTimeout;

    /**
     * IP
     */
    private String ip;

    /**
     * 私有构造函数
     */
    private SmsVerifyModel (){

    }

    /**
     * 构建请求
     *
     * @param bizCode   业务代码
     * @param params    参数
     * @return          请求实体
     */
    public static SmsVerifyModel build(String bizCode, Map<String,String> params){
        SmsVerifyModel model = new SmsVerifyModel();
        model.setBizCode(bizCode);
        model.setParams(params);
        return model;
    }

    /**
     * 构建请求
     *
     * @param bizCode   业务代码
     * @param params    参数
     * @param smsCode   短信验证码
     * @param expireTimeout 验证码过期时间
     * @return          请求实体
     */
    public static SmsVerifyModel build(String bizCode, Map<String,String> params,String smsCode,Long expireTimeout){
        SmsVerifyModel model = build(bizCode, params);
        model.setSmsCode(smsCode);
        model.setParams(params);
        model.setExpireTimeout(expireTimeout);
        return model;
    }
}
